إجابات هذا السؤال هي جهد مجتمعي. تحرير الإجابات الموجودة لتحسين هذه الوظيفة. لا يقبل حاليًا إجابات أو تفاعلات جديدة. لقد كتبت الشيء الخطأ في رسالة الالتزام. كيف يمكنني تغيير الرسالة؟ لم يتم دفع الالتزام بعد.
تعديل أحدث رسالة الالتزام git الالتزام - تعديل سيفتح محررك ، مما يسمح لك بتغيير رسالة الالتزام لأحدث التزام. بالإضافة إلى ذلك ، يمكنك تعيين رسالة الالتزام مباشرة في سطر الأوامر باستخدام: git الالتزام - تعديل -m "رسالة التزام جديدة" ... ومع ذلك ، يمكن أن يؤدي ذلك إلى جعل رسائل الالتزام متعددة الأسطر أو إدخال التصحيحات الصغيرة أكثر صعوبة. تأكد من عدم وجود أي تغييرات في نسخة العمل تم إجراؤها قبل القيام بذلك وإلا فسيتم الالتزام بها أيضًا. (لن يتم الالتزام بالتغييرات غير المُدرجة.) تغيير رسالة الالتزام الذي دفعته بالفعل إلى الفرع البعيد إذا كنت قد دفعت بالفعل التزامك إلى الفرع البعيد ، فحينئذٍ - بعد تعديل الالتزام محليًا (كما هو موضح أعلاه) - ستحتاج أيضًا إلى دفع الالتزام باستخدام: git push- force # أو git push -f تحذير: سيؤدي الدفع بالقوة إلى استبدال الفرع البعيد بحالة الفرع المحلي. إذا كانت هناك التزامات على الفرع البعيد ليس لديك في فرعك المحلي ، فستفقد تلك الالتزامات. تحذير: كن حذرًا بشأن تعديل الالتزامات التي شاركتها بالفعل مع أشخاص آخرين. يؤدي تعديل الالتزامات بشكل أساسي إلى إعادة كتابتها للحصول على معرّفات SHA مختلفة ، مما يطرح مشكلة إذا كان لدى الأشخاص الآخرين نسخ من الالتزام القديم الذي قمت بإعادة كتابته. سيحتاج أي شخص لديه نسخة من الالتزام القديم إلى مزامنة عمله مع الالتزام المعاد كتابته حديثًا ، والذي قد يكون صعبًا في بعض الأحيان ، لذا تأكد من التنسيق مع الآخرين عند محاولة إعادة كتابة سجل الالتزام المشترك ، أو فقط تجنب إعادة كتابة الالتزامات المشتركة كليا. قم بإجراء تغيير أساسي تفاعلي خيار آخر هو استخدام تغيير الأساسي التفاعلي. يتيح لك هذا تحرير أي رسالة تريد تحديثها حتى لو لم تكن هي الرسالة الأخيرة. للقيام بعملية Git Squash ، اتبع الخطوات التالية: // n هو عدد عمليات الالتزام حتى آخر التزام تريد أن تكون قادرًا على تعديله git rebase -i HEAD ~ n بمجرد سحق التزاماتك - اختر البريد / r لتحرير الرسالة: ملاحظة مهمة حول تغيير العنوان الأساسي التفاعلي عند استخدام git rebase -i HEAD ~ n يمكن أن يكون هناك أكثر من n من عمليات الالتزام. سوف "يجمع" Git جميع الالتزامات في آخر n من عمليات الالتزام ، وإذا كان هناك دمج في مكان ما بين هذا النطاق ، فسترى جميع الالتزامات أيضًا ، وبالتالي ستكون النتيجة n +. نصيحة جيدة: إذا كان عليك القيام بذلك لأكثر من فرع واحد وقد تواجه تعارضات عند تعديل المحتوى ، فقم بإعداد git rerere ودع Git يحل هذه التعارضات تلقائيًا نيابة عنك. توثيق git-الالتزام (1) صفحة دليل git-rebase (1) Manual Page git-push (1) Manual Page | git الالتزام - تعديل -m "رسالتك الجديدة" | إذا لم يكن الالتزام الذي تريد إصلاحه هو الأحدث: git rebase - التفاعلية $ parent_of_flawed_commit إذا كنت ترغب في إصلاح العديد من الالتزامات المعيبة ، فقم بتمرير أحد الوالدين الأقدم منهم. سيأتي محرر بقائمة بجميع الالتزامات منذ ذلك الذي قدمته. قم بتغيير الاختيار لإعادة صياغة (أو في الإصدارات القديمة من Git ، للتعديل) أمام أي التزامات تريد إصلاحها. بمجرد الحفظ ، سيعيد Git تنفيذ الالتزامات المدرجة. لكل التزام تريد إعادة صياغته ، ستعيدك Git إلى محررك. لكل التزام تريد تعديله ، يسقطك Git في الصدفة. إذا كنت في الصدفة: قم بتغيير الالتزام بأي طريقة تريدها. git الالتزام - تعديل git rebase - تابع سيتم شرح معظم هذا التسلسل لك من خلال إخراج الأوامر المختلفة أثناء التنقل. انه سهل جدا؛ لست بحاجة إلى حفظه - فقط تذكر أن git rebase - التفاعلي يتيح لك تصحيح الالتزامات بغض النظر عن المدة التي مرت عليها. لاحظ أنك لن ترغب في تغيير الالتزامات التي دفعتها بالفعل. أو ربما تفعل ذلك ، ولكن في هذه الحالة ، سيتعين عليك توخي الحذر الشديد للتواصل مع كل شخص ربما يكون قد سحب التزاماتك وقام بالعمل فوقها. كيف يمكنني استعادة / إعادة المزامنة بعد قيام شخص ما بدفع تغيير العنوان أو إعادة التعيين إلى فرع منشور؟ | لتعديل الالتزام السابق ، قم بإجراء التغييرات التي تريدها وقم بتنظيم هذه التغييرات ، ثم قم بتشغيلها git الالتزام - تعديل سيؤدي هذا إلى فتح ملف في محرر النصوص الخاص بك يمثل رسالة الالتزام الجديدة. يبدأ بالملء بالنص من رسالة الالتزام القديمة. غيّر رسالة التنفيذ كما تريد ، ثم احفظ الملف واخرج من المحرر للإنهاء. لتعديل الالتزام السابق والاحتفاظ بنفس رسالة السجل ، قم بتشغيل بوابة الالتزام - تعديل - C رئيس لإصلاح الالتزام السابق بإزالته بالكامل ، قم بتشغيل إعادة تعيين بوابة - Hard HEAD ^ إذا كنت تريد تحرير أكثر من رسالة تنفيذ واحدة ، فقم بتشغيل git rebase -i HEAD ~ الالتزام_كونت (استبدل رقم الالتزام بعدد الالتزامات التي تريد تحريرها). يقوم هذا الأمر بتشغيل المحرر الخاص بك. ضع علامة على الالتزام الأول (الذي تريد تغييره) على أنه "تعديل" بدلاً من "اختيار" ، ثم احفظه واخرج من المحرر. قم بإجراء التغيير الذي تريد تنفيذه ثم قم بتشغيله git الالتزام - تعديل git rebase - تابع ملاحظة: يمكنك أيضًا "إجراء التغيير الذي تريده" من المحرر المفتوح بواسطة git الالتزام - تعديل | كما سبقالمذكورة ، git الالتزام - تعديل هو طريقة الكتابة فوق الالتزام الأخير. ملاحظة واحدة: إذا كنت ترغب أيضًا في الكتابة فوق الملفات ، فسيكون الأمر git الالتزام -a --amend -m "رسالة الالتزام الجديدة الخاصة بي" | يمكنك أيضًا استخدام git filter-Branch لذلك. git filter-Branch -f --msg-filter "sed 's / errror / error /" "$ flawed_commit..HEAD الأمر ليس سهلاً مثل تعديل git التافه ، ولكنه مفيد بشكل خاص ، إذا كان لديك بالفعل بعض عمليات الدمج بعد رسالة الالتزام الخاطئة. لاحظ أن هذا سيحاول إعادة كتابة كل التزام بين HEAD والالتزام المعيب ، لذلك يجب عليك اختيار أمر msg-filter بحكمة شديدة ؛-) | أفضل هذه الطريقة: git الالتزام - تعديل -c <معرف الالتزام> خلاف ذلك ، سيكون هناك التزام جديد بمعرف الالتزام الجديد. | إذا كنت تستخدم أداة Git GUI ، فهناك زر يسمى Amend last الالتزام. انقر فوق هذا الزر ثم سيعرض آخر ملفات ورسالة التنفيذ. ما عليك سوى تعديل هذه الرسالة ، ويمكنك إلحاقها برسالة التزام جديدة. أو استخدم هذا الأمر من وحدة تحكم / محطة طرفية: git الالتزام -a --amend -m "رسالة الالتزام الجديدة الخاصة بي" | يمكنك استخدام Git rebasing. على سبيل المثال ، إذا كنت تريد التعديل مرة أخرى للالتزام بـ bbc643cd ، فقم بتشغيل $ git rebase bbc643cd ^ - تفاعلي في المحرر الافتراضي ، قم بتعديل "اختيار" إلى "تحرير" في السطر الذي تريد تعديل التزامه. قم بإجراء التغييرات ثم قم بترتيبها إضافة git $ الآن يمكنك استخدام ملفات git الالتزام - تعديل لتعديل الالتزام ، وبعد ذلك git rebase - تابع للعودة إلى الرأس السابق الالتزام. | إذا كنت تريد فقط تعديل آخر رسالة التزام ، فقم بما يلي: git الالتزام - تعديل سيؤدي ذلك إلى إسقاطك في محرر النصوص الخاص بك ويسمح لك بتغيير آخر رسالة الالتزام. إذا كنت تريد تغيير آخر ثلاث رسائل التزام ، أو أي من رسائل الالتزام حتى تلك النقطة ، فقم بتوفير HEAD ~ 3 للأمر git rebase -i: git rebase -i HEAD ~ 3 | إذا كان عليك تغيير رسالة الالتزام القديمة عبر عدة فروع (على سبيل المثال ، فإن الالتزام بالرسالة الخاطئة موجود في عدة فروع) ، فقد ترغب في استخدام: مرشح git- فرع -f -msg-filter \ 'sed' s / / / g "'- all سيقوم Git بإنشاء دليل مؤقت لإعادة الكتابة بالإضافة إلى نسخ المراجع القديمة احتياطيًا في refs / original /. -و سوف يفرض تنفيذ العملية. يعد ذلك ضروريًا إذا كان الدليل المؤقت موجودًا بالفعل أو إذا كانت هناك مراجع مخزنة بالفعل تحت refs / original. إذا لم يكن الأمر كذلك ، يمكنك إسقاط هذا العلم. - يفصل خيارات فرع المرشح عن خيارات المراجعة. - سيتأكد الجميع من إعادة كتابة جميع الفروع والعلامات. نظرًا للنسخ الاحتياطي لمراجعك القديمة ، يمكنك بسهولة الرجوع إلى الحالة قبل تنفيذ الأمر. لنفترض أنك تريد استرداد سيدك والوصول إليه في الفرع old_master: git checkout -b old_master refs / original / refs / heads / master | استعمال git الالتزام - تعديل لفهمها بالتفصيل ، المنشور الممتاز هو 4. إعادة كتابة Git History. يتحدث أيضًا عن متى لا تستخدم git الالتزام - تعديل. | إذا كان هذا هو الالتزام الأخير ، فما عليك سوى تعديل الالتزام: git الالتزام - تعديل -o -m "رسالة الالتزام الجديدة" (باستخدام علامة -o (- فقط) للتأكد من تغيير رسالة الالتزام فقط) إذا كان التزامًا مدفونًا ، فاستخدم إعادة القاعدة التفاعلية الرائعة: git rebase -i @ ~ 9 # اعرض آخر 9 عمليات في محرر نصي ابحث عن الالتزام الذي تريده ، وقم بتغيير اختيار إلى r (إعادة صياغة) ، واحفظ الملف وأغلقه. منجز! برنامج تعليمي مصغر لـ Vim (أو ، كيفية إعادة التهيئة ب 8 ضغطات فقط على 3jcwrEscZZ) قم بتشغيل vimtutor إذا كان لديك الوقت تتوافق hjkl مع مفاتيح الحركة ← ↓ ↑ → يمكن أن تبدأ جميع الأوامر بـ "النطاق" ، على سبيل المثال 3j يتحرك لأسفل ثلاثة أسطر للدخول إلى وضع الإدراج - سيظهر النص الذي تكتبه في الملف Esc أو Ctrlc للخروج من وضع الإدراج والعودة إلى الوضع "العادي" ش للتراجع Ctrlr للإعادة dd أو dw أو dl لحذف سطر أو كلمة أو حرف على التوالي cc أو cw أو cl لتغيير سطر أو كلمة أو حرف على التوالي (مثل ddi) yy ، yw ، yl لنسخ ("yank") سطر أو كلمة أو حرف على التوالي p أو P للصق بعد أو قبل الموضع الحالي ، على التوالي : أدخل لحفظ (كتابة) ملف : q! أدخل للخروج دون حفظ : wqEnter أو ZZ للحفظ والإنهاء إذا قمت بتحرير النص كثيرًا ، فانتقل إلى تخطيط لوحة مفاتيح Dvorak ، وتعلم الكتابة باللمس ، وتعلم Vim. هل يستحق كل هذا الجهد؟ نعم. ProTip ™: لا تخف من تجربة الأوامر "الخطيرة" التي تعيد كتابة السجل * - لا تحذف Git التزاماتك لمدة 90 يومًا افتراضيًا ؛ يمكنك العثور عليها في إعادة التدوين: إعادة تعيين $ git @ ~ 3 # العودة إلى الوراء ثلاث عمليات $ git reflog c4f708b HEAD @ {0}: إعادة الضبط: الانتقال إلى @ ~ 3 2c52489 HEAD @ {1}: الالتزام: المزيد من التغييرات 4a5246d HEAD @ {2}: الالتزام: قم بإجراء تغييرات مهمة e8571e4 HEAD @ {3}: الالتزام: قم بإجراء بعض التغييرات ... في وقت سابق ... إعادة تعيين $ git 2c52489 ... وعدت حيث بدأت * احترس من خيارات مثل - القاسية والقوة - يمكنها تجاهل البيانات. * أيضًا ، لا تعيد كتابة التاريخ في أي فرع تتعاون فيه. | عدّل لديك زوج منالخيارات هنا. يمكنك ان تفعل git الالتزام - تعديل طالما أنه آخر التزام لك. إعادة تأسيس تفاعلية وإلا ، إذا لم يكن هذا هو الالتزام الأخير ، فيمكنك إجراء إعادة تأسيس تفاعلية ، git rebase -i [Branched_from] [تجزئة قبل التنفيذ] ثم داخل القاعدة التفاعلية الجديدة ، يمكنك ببساطة إضافة تعديل إلى ذلك الالتزام. عندما تظهر ، قم بإجراء git الالتزام - تعديل وتعديل رسالة الالتزام. إذا كنت تريد التراجع قبل نقطة الالتزام هذه ، فيمكنك أيضًا استخدام git reflog وحذف هذا الالتزام فقط. ثم تقوم بتنفيذ الأمر git مرة أخرى. | إذا كنت تستخدم Git GUI ، فيمكنك تعديل الالتزام الأخير الذي لم يتم دفعه باستخدام: الالتزام / تعديل الالتزام الأخير | أستخدم Git GUI بقدر ما أستطيع ، وهذا يمنحك خيار تعديل الالتزام الأخير: أيضًا ، git rebase -i origin / master هو تعويذة لطيفة تقدم لك دائمًا الالتزامات التي قمت بها على مستوى الماجستير ، وتعطيك خيار التعديل أو الحذف أو إعادة الترتيب أو الإسكوا. لا حاجة للحصول على هذا التجزئة أولاً. | رائع ، هناك الكثير من الطرق للقيام بذلك. هناك طريقة أخرى للقيام بذلك وهي حذف آخر التزام ، مع الاحتفاظ بتغييراته حتى لا تفقد عملك. يمكنك بعد ذلك إجراء التزام آخر بالرسالة المصححة. سيبدو هذا مثل هذا: إعادة تعيين البوابة - رأس ناعم ~ 1 git الالتزام -m "رسالة الالتزام الجديدة والمصححة" أفعل هذا دائمًا إذا نسيت إضافة ملف أو إجراء تغيير. تذكر أن تحدد - ناعمًا بدلاً من - صعب ، وإلا ستفقد هذا الالتزام تمامًا. | لأي شخص يبحث عن Windows / Mac GUI للمساعدة في تحرير الرسائل القديمة (أي ليس فقط أحدث رسالة) ، أوصي Sourcetree. الخطوات التي يجب اتباعها موجودة أسفل الصورة. بالنسبة للالتزامات التي لم يتم دفعها إلى جهاز تحكم عن بعد بعد: تأكد من قيامك بتنفيذ أو إخفاء جميع التغييرات الحالية (على سبيل المثال ، حتى لا تكون هناك ملفات مدرجة في علامة التبويب "حالة الملف") - فلن تعمل بطريقة أخرى. في علامة التبويب "السجل / السجل" ، انقر بزر الماوس الأيمن على الإدخال الذي يحتوي على سطر مجاور في الرسم البياني الموجود أسفل الالتزام (الالتزامات) التي ترغب في تحريرها وحدد "إعادة تحديد العناصر الفرعية لـ <الالتزام المرجع> بشكل تفاعلي ..." حدد الصف بأكمله لرسالة الالتزام التي ترغب في تغييرها (انقر فوق عمود "الرسالة"). انقر فوق الزر "تحرير الرسالة". قم بتحرير الرسالة كما تريد في مربع الحوار الذي يظهر ثم انقر فوق "موافق". كرر الخطوات من 3-4 إذا كانت هناك رسائل التزام أخرى تريد تغييرها. انقر فوق "موافق": ستبدأ إعادة التأسيس. إذا كان كل شيء على ما يرام ، سينتهي الإخراج "مكتمل بنجاح". ملاحظة: لقد رأيت أحيانًا هذا الفشل مع تعذر إنشاء "project_path / .git / index.lock": الملف موجود. عند محاولة تعديل رسائل الالتزام المتعددة في نفس الوقت. لست متأكدًا بالضبط ما هي المشكلة ، أو ما إذا كان سيتم إصلاحها في إصدار مستقبلي من Sourcetree ، ولكن إذا حدث ذلك ، فسوف نوصي بإعادة تعيينها واحدة تلو الأخرى (أبطأ ولكن يبدو أكثر موثوقية) ... أو ... للالتزامات التي تم دفعها بالفعل: اتبع الخطوات في هذه الإجابة ، والتي تشبه ما ورد أعلاه ، ولكنها تتطلب أمرًا آخر ليتم تشغيله من سطر الأوامر (git push origin -f) لفرض دفع الفرع. أوصي بقراءة كل شيء وتطبيق الحذر اللازم! | إذا كنت تريد فقط تعديل آخر التزام ، فاستخدم: git الالتزام - تعديل أو بوابة الالتزام - تعديل - "رسالة سطر واحد" ولكن إذا كنت تريد تحرير عدة التزامات متتالية ، فيجب عليك استخدام إعادة التأسيس بدلاً من ذلك: git rebase -i <تجزئة تنفيذ واحد قبل التنفيذ الخاطئ> في ملف ، مثل الموجود أعلاه ، اكتب تحرير / e أو أحد الخيارات الأخرى ، واضغط على حفظ وخروج. الآن ستكون في أول ارتكاب خاطئ. قم بإجراء تغييرات في الملفات ، وسيتم تنظيمها تلقائيًا لك. اكتب git الالتزام - تعديل احفظ واخرج من ذلك واكتب git rebase - تابع للانتقال إلى التحديد التالي حتى الانتهاء من جميع التحديدات الخاصة بك. لاحظ أن هذه الأشياء تغير كل تجزئات SHA بعد هذا الالتزام المحدد. | إذا كنت تريد فقط تغيير رسالتك الأخيرة ، فيجب عليك استخدام العلامة --only أو الاختصار -o مع الالتزام - تعديل: git الالتزام - تعديل -o -m "رسالة الالتزام الجديدة" هذا يضمن عدم تحسين التزامك عن طريق الخطأ بالأشياء المرحلية. بالطبع من الأفضل أن يكون لديك تكوين مناسب لـ $ EDITOR. بعد ذلك يمكنك ترك الخيار -m خارجًا ، وسيقوم Git بملء رسالة الالتزام مسبقًا بالرسالة القديمة. بهذه الطريقة يمكن تحريره بسهولة. | قم بتحديث آخر رسالة التزام خاطئة برسالة الالتزام الجديدة في سطر واحد: git الالتزام - تعديل -m "رسالة الالتزام الجديدة" أو حاول إعادة تعيين Git كما يلي: # يمكنك إعادة تعيين رأسك إلى عدد n من الالتزام # ليست فكرة جيدة لتغيير آخر رسالة تنفيذ ، # ولكن يمكنك الحصول على فكرة لتقسيم الالتزام إلى التزامات متعددة إعادة تعيين البوابة - رأس ناعم ^ # ستتم إعادة تعيين آخر التزام. الآن أنت # يمكنه إعادة الالتزام برسالة الالتزام الجديدة. باستخدام إعادة التعيين لتقسيم الالتزامات إلى التزامات أصغر يمكن أن تساعدك إعادة تعيين git في تقسيم التزام واحد إلى التزامات متعددة أيضًا: # إعادة تعيين رأسك. أنا أعيد التعيين إلى آخر ارتباطات: إعادة تعيين البوابة - رأس ناعم ^ # (يمكنك إعادة تعيين الالتزام المتعدد عن طريق تنفيذ HEAD ~ 2 (عدد الالتزامات) # الآن ، أعد تعيين رأسك لـتقسيمها إلى التزامات متعددة بوابة إعادة تعيين الرأس # أضف ملفاتك وقم بتثبيتها بشكل منفصل لعمل التزامات متعددة: على سبيل المثال بوابة إضافة التطبيق / git الالتزام -m "إضافة جميع الملفات في دليل التطبيق" بوابة إضافة التكوين / git الالتزام -m "إضافة جميع الملفات في دليل التكوين" هنا نجحت في كسر التزامك الأخير إلى جزأين. | يوجد الكثير من الإجابات على هذا السؤال ، لكن لا أحد منهم يشرح بالتفصيل كيفية تغيير رسائل الالتزام القديمة باستخدام Vim. لقد علقت في محاولة القيام بذلك بنفسي ، لذلك سأدون هنا بالتفصيل كيف فعلت هذا خاصة للأشخاص الذين ليس لديهم خبرة في Vim! أردت تغيير آخر التزاماتي الخمسة التي دفعتها بالفعل إلى الخادم. هذا "خطير" تمامًا لأنه إذا انسحب شخص آخر بالفعل من هذا ، فيمكنك إفساد الأمور عن طريق تغيير رسائل الالتزام. ومع ذلك ، عندما تعمل على فرعك الصغير وتأكد من عدم قيام أحد بسحبه ، يمكنك تغييره على النحو التالي: لنفترض أنك تريد تغيير آخر خمسة التزامات ، ثم قمت بكتابة هذا في المحطة: git rebase -i HEAD ~ 5 * حيث 5 هو عدد رسائل الالتزام التي تريد تغييرها (لذلك إذا كنت تريد تغيير من العاشر إلى الأخير ، فاكتب 10). سيوصلك هذا الأمر إلى Vim حيث يمكنك "تعديل" سجل الالتزام. سترى التزاماتك الخمسة الأخيرة في الأعلى كما يلي: اختر <تنفيذ التجزئة> تنفيذ الرسالة بدلاً من الاختيار ، تحتاج إلى كتابة إعادة صياغة. يمكنك القيام بذلك في Vim عن طريق كتابة i. هذا يجعلك تدخل في وضع الإدراج. (ترى أنك في وضع الإدراج بالكلمة INSERT في الأسفل.) بالنسبة للالتزامات التي تريد تغييرها ، اكتب Reword بدلاً من الاختيار. ثم تحتاج إلى حفظ هذه الشاشة والخروج منها. يمكنك القيام بذلك عن طريق الدخول أولاً إلى "وضع الأوامر" بالضغط على زر Escbutton (يمكنك التحقق من أنك في وضع الأوامر إذا اختفت كلمة INSERT في الأسفل) ثم يمكنك كتابة الأمر بكتابة:. أمر الحفظ والإنهاء هو wq. لذلك إذا كتبت: wq ، فأنت على المسار الصحيح. بعد ذلك ، سوف ينتقل Vim إلى كل رسالة التزام تريد إعادة صياغتها ، وهنا يمكنك بالفعل تغيير رسائل الالتزام. ستفعل ذلك بالانتقال إلى وضع الإدراج وتغيير رسالة التنفيذ والانتقال إلى وضع الأوامر والحفظ والإنهاء. افعل هذا خمس مرات وأنت خارج Vim! بعد ذلك ، إذا كنت قد دفعت بالفعل التزاماتك الخاطئة ، فأنت بحاجة إلى الضغط على القوة لاستبدالها. تذكر أن فعل git push --force أمر خطير جدًا ، لذا تأكد من عدم انسحاب أي شخص من الخادم منذ أن دفعت بالتزاماتك الخاطئة! الآن قمت بتغيير رسائل الالتزام الخاصة بك! (كما ترى ، لست من ذوي الخبرة في Vim ، لذلك إذا استخدمت "اللغة" الخطأ لشرح ما يحدث ، فلا تتردد في تصحيح ما يحدث!) | يمكنك استخدام git-rebase-Reword إنه مصمم لتحرير أي التزام (ليس فقط أخيرًا) بنفس طريقة الالتزام - تعديل $ git rebase-Reword تمت تسميته على اسم الإجراء على قاعدة البيانات التفاعلية لتعديل الالتزام: "إعادة صياغة". شاهد هذا المنشور والوضع التفاعلي للقسم البشري- أمثلة: git rebase-Reword b68f560 $ git rebase-Reword HEAD ^ | لقد أضفت الأسماء المستعارة reci و recm لإعادة ارتكابها (تعديلها). يمكنني الآن القيام بذلك باستخدام git recm أو git recm -m: $ vim ~ / .gitconfig [اسم مستعار] ...... سم = الالتزام reci = الالتزام - تعديل recm = الالتزام - تعديل ...... | أدركت أنني دفعت إلى ارتكاب خطأ مطبعي فيه. من أجل التراجع ، قمت بما يلي: git الالتزام - تعديل -m "T-1000 ، النموذج الأولي المتقدم" git push - force تحذير: سيؤدي دفع التغييرات بالقوة إلى استبدال الفرع البعيد بالفرع المحلي. تأكد من أنك لن تقوم بالكتابة فوق أي شيء تريد الاحتفاظ به. كن حذرًا أيضًا بشأن فرض دفع التزام معدل (معاد كتابته) إذا شارك أي شخص آخر الفرع معك ، لأنهم سيحتاجون إلى إعادة كتابة تاريخهم الخاص إذا كان لديهم النسخة القديمة من الالتزام الذي أعدت كتابته للتو. | أحب استخدام ما يلي: حالة بوابة بوابة إضافة - الكل git الالتزام -am "تظهر الرسالة هنا بخصوص التغيير" بوابة سحب <سيد الأصل> git push | إذا لم تقم بدفع الكود إلى فرعك البعيد (GitHub / Bitbucket) ، يمكنك تغيير رسالة الالتزام في سطر الأوامر على النحو التالي. git الالتزام - تعديل -m "رسالتك الجديدة" إذا كنت تعمل في فرع معين ، فافعل هذا: git الالتزام - amend -m "BRANCH-NAME: new message" إذا كنت قد دفعت بالفعل الرمز برسالة خاطئة ، وتحتاج إلى توخي الحذر عند تغيير الرسالة. أي بعد تغيير رسالة الالتزام ومحاولة دفعها مرة أخرى ، ينتهي بك الأمر إلى مواجهة مشكلات. لتسهيل الأمر ، اتبع هذه الخطوات. يرجى قراءة إجابتي بالكامل قبل القيام بذلك. git الالتزام - amend -m "BRANCH-NAME: your new message" git push -f origin BRANCH-NAME # ليست أفضل الممارسات. اقرأ أدناه لماذا؟ ملاحظة مهمة: عند استخدام الدفع بالقوة مباشرةً ، فقد ينتهي بك الأمر بمشكلات في التعليمات البرمجية يعمل مطورو آخرون على نفس الفرع. لذلك لتجنب هذه التعارضات ، تحتاج إلى سحب الرمز من فرعك قبل إجراء القوةإدفع: git الالتزام - amend -m "BRANCH-NAME: your new message" بوابة سحب أصل فرع الاسم بوابة دفع - اسم فرع المنشأ هذه هي أفضل ممارسة عند تغيير رسالة الالتزام ، إذا تم دفعها بالفعل. | ليس الجواب الذي تبحث عنه؟ تصفح الأسئلة الأخرى الموسومة بـ git-الالتزام git-Rewrite-history أو تعديل أو طرح سؤالك الخاص.